home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / src / linux-headers-2.6.28-15 / include / net / irda / af_irda.h next >
Encoding:
C/C++ Source or Header  |  2008-12-24  |  2.9 KB  |  88 lines

  1. /*********************************************************************
  2.  *                
  3.  * Filename:      af_irda.h
  4.  * Version:       1.0
  5.  * Description:   IrDA sockets declarations
  6.  * Status:        Stable
  7.  * Author:        Dag Brattli <dagb@cs.uit.no>
  8.  * Created at:    Tue Dec  9 21:13:12 1997
  9.  * Modified at:   Fri Jan 28 13:16:32 2000
  10.  * Modified by:   Dag Brattli <dagb@cs.uit.no>
  11.  * 
  12.  *     Copyright (c) 1998-2000 Dag Brattli, All Rights Reserved.
  13.  *     Copyright (c) 2000-2002 Jean Tourrilhes <jt@hpl.hp.com>
  14.  *      
  15.  *     This program is free software; you can redistribute it and/or 
  16.  *     modify it under the terms of the GNU General Public License as 
  17.  *     published by the Free Software Foundation; either version 2 of 
  18.  *     the License, or (at your option) any later version.
  19.  *  
  20.  *     Neither Dag Brattli nor University of Troms√∏ admit liability nor
  21.  *     provide warranty for any of this software. This material is 
  22.  *     provided "AS-IS" and at no charge.
  23.  *     
  24.  ********************************************************************/
  25.  
  26. #ifndef AF_IRDA_H
  27. #define AF_IRDA_H
  28.  
  29. #include <linux/irda.h>
  30. #include <net/irda/irda.h>
  31. #include <net/irda/iriap.h>        /* struct iriap_cb */
  32. #include <net/irda/irias_object.h>    /* struct ias_value */
  33. #include <net/irda/irlmp.h>        /* struct lsap_cb */
  34. #include <net/irda/irttp.h>        /* struct tsap_cb */
  35. #include <net/irda/discovery.h>        /* struct discovery_t */
  36. #include <net/sock.h>
  37.  
  38. /* IrDA Socket */
  39. struct irda_sock {
  40.     /* struct sock has to be the first member of irda_sock */
  41.     struct sock sk;
  42.     __u32 saddr;          /* my local address */
  43.     __u32 daddr;          /* peer address */
  44.  
  45.     struct lsap_cb *lsap; /* LSAP used by Ultra */
  46.     __u8  pid;            /* Protocol IP (PID) used by Ultra */
  47.  
  48.     struct tsap_cb *tsap; /* TSAP used by this connection */
  49.     __u8 dtsap_sel;       /* remote TSAP address */
  50.     __u8 stsap_sel;       /* local TSAP address */
  51.     
  52.     __u32 max_sdu_size_rx;
  53.     __u32 max_sdu_size_tx;
  54.     __u32 max_data_size;
  55.     __u8  max_header_size;
  56.     struct qos_info qos_tx;
  57.  
  58.     __u16_host_order mask;           /* Hint bits mask */
  59.     __u16_host_order hints;          /* Hint bits */
  60.  
  61.     void *ckey;           /* IrLMP client handle */
  62.     void *skey;           /* IrLMP service handle */
  63.  
  64.     struct ias_object *ias_obj;   /* Our service name + lsap in IAS */
  65.     struct iriap_cb *iriap;          /* Used to query remote IAS */
  66.     struct ias_value *ias_result; /* Result of remote IAS query */
  67.  
  68.     hashbin_t *cachelog;        /* Result of discovery query */
  69.     __u32 cachedaddr;    /* Result of selective discovery query */
  70.  
  71.     int nslots;           /* Number of slots to use for discovery */
  72.  
  73.     int errno;            /* status of the IAS query */
  74.  
  75.     wait_queue_head_t query_wait;    /* Wait for the answer to a query */
  76.     struct timer_list watchdog;    /* Timeout for discovery */
  77.  
  78.     LOCAL_FLOW tx_flow;
  79.     LOCAL_FLOW rx_flow;
  80. };
  81.  
  82. static inline struct irda_sock *irda_sk(struct sock *sk)
  83. {
  84.     return (struct irda_sock *)sk;
  85. }
  86.  
  87. #endif /* AF_IRDA_H */
  88.